A database is a collection of information organized in such a way that a computer program can quickly access desired pieces of data. In its simplest form, a database is a repository for the storage and retrieval of information. Distributed database systems are databases in which the data storage and processing load is spread out over multiple database systems and connected by a communication. Distributed databases enable multiple users on a network such as a local area network (LAN) to access the same database system simultaneously. Some of the advantages made possible by prior art distributed databases include (a.) locating selected data nearer to sites of higher demand for faster and more efficient access; (b.) load balancing of computational processing and message activity among a plurality of servers; (c.) improving fault tolerance by redundantly storing data in a more than one of a variety of memory locations; and (d.) enabling scalability, wherein processing activity can be divided among multiple systems rather than upon one centralized system that must handle all requests.
Relational databases and object oriented databases are two of the most commonly used types of database types. Each database type has its advantages and inefficiencies.
An object oriented database may be modeled as a collection of objects of various arrangements of data, i.e., object classes, that can be examined, manipulated, added to, or removed. To be effective, an object oriented database system must present an interface to some service or system to a user. Such an interface may be referred to as an object model of the represented service or system. For example, the Hyper Text Mark-up Language Document Object Model is a collection of objects that represent a page in a web browser, used by script programs to examine and dynamically change the page. The Microsoft Excel object model for controlling Microsoft Excel from another program is another example of an interface for an object oriented database system. Access to data stored in software objects can be faster because joins are often not needed (as in a tabular implementation of a relational database). This is because a software object can be retrieved directly without a search, by following pointers.
In contrast to software object database structure, a relational database is organized by fields, records and tables or files. A field is a category or item of information, a record is one complete set of fields, and a table or file is a collection of records. For example, a telephone book is analogous to a table or file. It contains a list of records that is analogous to the entries of people or businesses in the phone book, each record consisting of three fields: name, address, and telephone number.
A database management system (hereafter “DBMS”) can be used to access information in a database. The DBMS is a collection of programs that enables the entry, organization and selection of data in a database. There are many different types of DBMS's, ranging from small systems that run on personal computers to very large systems that run on mainframe computers or serve the data storage and retrieval needs of many computers connected to a computer network.
The set of rules or standards for constructing queries is generally referred to as a query language. Different DBMS's support different query languages, although there is a semi-standardized query language called structured query language (hereafter “SQL”).
SQL is used to communicate with a database system. SQL is the American National Standards Institute standard language for relational database management systems. SQL statements are used to perform tasks such as update data on a database or retrieve data from a database. Although there are different variations or dialects of SQL, it is nevertheless the closest thing to a standard query language that currently exists. Some examples of relational database management systems that use SQL include the following: Oracle, Sybase, Microsoft SQL Server, Access, and Ingres. Although most database systems use SQL, many also have their own additional proprietary extensions that are usually only used on that system. However, the standard SQL commands such as “Select,” “Insert,” “Update,” “Delete,” “Create,” and “Drop” can be used to accomplish most operations that the user needs to do with a database. Many users who are capable of authoring queries in an SQL are unfamiliar and/or uncomfortable with applying the syntax of an object oriented DBMS.
The prior art includes efforts to increase database searching effectiveness. U.S. Pat. No. 7,162,491 discloses a data processing system, data processing method and computer program; U.S. Pat. No. 6,763,350 presents a system and method for generating horizontal view for SQL queries to vertical database; U.S. Pat. No. 6,745,198 discusses a parallel spatial join index; U.S. Pat. No. 6,640,221 discloses a system and method for configuring, sequencing and viewing joins in a query; U.S. Pat. No. 6,374,252 presents a modeling of object-oriented database structures, translation to relational database structures, and dynamic searches thereon; U.S. Pat. No. 6,012,067 discloses a method and apparatus for storing and manipulating objects in a plurality of relational data managers on the web; and U.S. Pat. No. 5,812,996 discusses a database system with methods for optimizing query performance with a buffer manager. In addition, U.S. Patent Application Serial No. 20060212436 discloses rewriting queries containing rank or row number or minimum/maximum aggregate functions using a materialized view; U.S. Patent Application Serial No. 20060179068 presents techniques for efficiently storing and querying in a relational database, XML documents conforming to schemas that contain cyclic constructs; U.S. Patent Application Serial No. 20050203869 discloses a hierarchical database apparatus, components selection method in hierarchical database, and components selection program; U.S. Patent Application Serial No. 20050120000 discusses a plurality of auto-tuning SQL statements; U.S. Patent Application Serial No. 20050097103 discloses a technique of performing sequence analysis as a multipart plan storing intermediate results as a relation; U.S. Patent Application Serial No. 20050091238 presents a performance of sequence analysis as a relational join; U.S. Patent Application Serial No. 20050091199 discloses a method and system for generating SQL joins to optimize performance; U.S. Patent Application Serial No. 20040181524 discusses a system and method for distributed processing in a node environment; U.S. Patent Application Serial No. 20040181523 discloses a system and method for generating and processing results data in a distributed system; U.S. Patent Application Serial No. 20040177084 presents a system and method for generating horizontal view for SQL queries to vertical database; U.S. Patent Application Serial No. 20040054683 discloses a system and method for join operations of a star schema database; U.S. Patent Application Serial No. 20030110189 discusses a system and method for generating horizontal view for SQL queries to vertical database; U.S. Patent Application Serial No. 20020107836 discloses a data processing system, data processing method and computer program; and U.S. Patent Application Serial No. 20020059199 presents a system for and method of operating a database.
The entire disclosures of each and every patent and patent application mentioned in this present disclosure, to include U.S. Pat. Nos. 7,162,491; 6,763,350; 6,745,198; 6,640,221; 6,374,252; 6,012,067; and 5,812,996, as well as US Patent Application Serial No.'s 20060212436; 20060179068; 20050203869; 20050091238 presents a performance of sequence analysis as a relational join; 20050091199; 20040181524; 20040181523; 20040177084; 20040054683; 20030110189; 20020107836; and 20020059199 as noted above, are incorporated herein by reference, in their entirety, and for all purposes.
There exists, therefore, a long felt need to provide a DBMS that takes advantage of the search speed advantages of object oriented database technology while allowing users familiar with SQL the opportunity to search the database by authoring SQL-like queries.